package ysq.xyg.host.service;


import ysq.xyg.base.model.dto.ReturnEntity;
import ysq.xyg.base.service.BaseService;
import ysq.xyg.host.model.po.HostReport;
import ysq.xyg.sys.model.po.SysUser;
import ysq.xyg.host.model.vo.HostReportVo;

import java.util.List;
/**
 * 房产模块-报备service接口
 *
 * @author shengQiang yu
 * @date 2019-7-1 15:25:15
 */
public interface HostReportService extends BaseService<HostReport> {
    /**
     * 分页查询
     *
     * @param hostReportVo 对象
     * @param pageSize 当前页面
     * @param pageNum 页面数量
     * @return ReturnEntity 对象
     * @author shengQiang yu
     * @date 2019-7-1 15:25:15
     */
    ReturnEntity page(HostReportVo hostReportVo, int pageSize, int pageNum);
    /**
     * 分页查询
     *
     * @param hostReportVo 对象
     * @param pageSize 展示数量
     * @param pageNum 当前页面
     * @return ReturnEntity 对象
     * @author shengQiang yu
     * @date 2019-7-1 15:25:15
     */
    ReturnEntity pageMember(HostReportVo hostReportVo, int pageSize, int pageNum);
    /**
     * 修改
     *
     * @param hostReportVo 对象
     * @param currentUser 当前用户
     * @return ReturnEntity 对象
     * @author shengQiang yu
     * @date 2019-7-1 15:25:15
     */
    ReturnEntity addOrUpdate(HostReportVo hostReportVo, SysUser currentUser);
    /**
     * 修改状态
     *
     * @param hostReportVo 对象
     * @param currentUser 当前用户
     * @return ReturnEntity 对象
     * @author shengQiang yu
     * @date 2019-7-1 15:25:15
     */
    ReturnEntity update(HostReportVo hostReportVo, SysUser currentUser);
    /**
     * 删除
     *
     * @param id 主键id删除
     * @param currentUser 当前用户
     * @return ReturnEntity 对象
     * @author shengQiang yu
     * @date 2019-7-1 15:25:15
     */
    ReturnEntity delete(String id, SysUser currentUser);
    /**
     * 获取集合
     *
     * @param hostReportVo 对象
     * @return List<HostReport> HostReport集合
     * @author shengQiang yu
     * @date 2019-7-1 15:25:15
     */
    List<HostReport> acceptList(HostReportVo hostReportVo);

    List<HostReport> listLeft(HostReportVo hostReportVo);

    /**
     * 商品报备数
     * @param itemId
     * @author congcong tao
     * @date 2019/9/20 10:47
     */
    int selectCountByItemId(String itemId);

    /**
     * 根据用户和状态查询数量
     * @param memberId
     * @param reportState
     * @author congcong tao
     * @date 2019/8/31 10:41
     */
    int selectCountByStatus(String memberId, String reportState);

    /**
     * 需要判断这个手机号是否已报备过
     * @param phone
     * @author congcong tao
     * @date 2019/11/18 10:33
     */
    boolean checkReportState(String phone);
}
